<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="zh" xml:lang="zh" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Artifact: Service Component</title>
<meta name="uma.type" content="Artifact">
<meta name="uma.name" content="soa_svce_component">
<meta name="uma.presentationName" content="Service Component">
<meta name="element_type" content="Artifact">
<meta name="filetype" content="description">
<meta name="role" content="">
<link rel="StyleSheet" href="./../../css/default.css" type="text/css">
<script src="./../../scripts/ContentPageResource.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ContentPageSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ContentPageSubSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ContentPageToolbar.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/contentPage.js" type="text/javascript" language="JavaScript"></script><script type="text/javascript" language="JavaScript">
					var backPath = './../../';
					var imgPath = './../../images/';
					var nodeInfo=null;
					contentPage.preload(imgPath, backPath, nodeInfo, '', false, false, false);
				</script>
</head>
<body>
<div id="breadcrumbs"></div>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top"><a name="Top"></a>
<div id="page-guid" value="{447385A0-E565-4C87-A082-402AF21CA088}"></div>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="pageTitle" nowrap="true">Artifact: Service Component</td><td width="100%">
<div align="right" id="contentPageToolbar"></div>
</td><td width="100%" class="expandCollapseLink" align="right"><a name="mainIndex" href="./../../index.htm"></a><script language="JavaScript" type="text/javascript" src="./../../scripts/treebrowser.js"></script></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="pageTitleSeparator"><img src="./../../images/shim.gif" alt="" title="" height="1"></td>
</tr>
</table>
<div class="overview">
<table width="97%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50"><img src="./../../rup_soa_plugin/workproducts/resources/soa_svc_component_48.gif" alt="" title=""></td><td>
<table class="overviewTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">This artifact is intended for use in describing the realization of a service specification. A service component may provide the realization for one or more services by the realization of multiple service specifications. The set of model elements on the inside of the component represent the concrete realization of the structural, behavioral, and policy contract described by these service specifications.</td>
</tr>
<tr>
<td>Extends: <a href="./../../rup/workproducts/rup_design_subsystem_1A8D169B.html" guid="{A3C60B25-9780-4BFA-81AF-C1AD40D8A833}">设计子系统</a></td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Purpose</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td class="sectionTableSingleCell"><a id="XE_service_component__artifact_definition" name="XE_service_component__artifact_definition"></a><a id="Purpose" name="Purpose"></a> 
<p>
    Service Components are key to the development of a service-oriented solution as they provide the implementation of the
    services identified within the <i><a class="elementLink" href="./../../rup_soa_plugin/workproducts/soa_service_model_623494B9.html" guid="{E24679B7-19F1-483B-A1F1-578839C43888}">Service Model</a></i>.
</p>
<p>
    The following people use the service component:
</p>
<ul>
    <li>
        <b>Implementers of the services</b>, to describe the model elements that provide the behavioral implementation of
        the service.
    </li>
</ul>
<p>
    The Service Component shall provide a complete encapsulation of its behavior and only expose those capabilities defined
    by the Service Specification. Where the Service Specification also includes behavioral specifications in the form of
    protocol state machines, interactions, or activities, the Service Component shall ensure the implementation complies
    with this behavior.
</p></td>
</tr>
</table>
</div>
<div class="sectionHeading">Relationships</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Container Artifact</th><td class="sectionTableCell" colspan="2">
<ul>
<li>
<a href="./../../rup/workproducts/rup_design_model_2830034D.html" guid="{8CDAEAD4-5E84-4F50-87FD-3240ED047DE7}">设计模型</a>
</li>
</ul>
</td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row">Roles</th><td class="sectionTableCell" width="42%"><span class="sectionTableCellHeading">Responsible:
								</span>
<ul>
<li>
<a href="./../../rup/roles/rup_capsule_designer_F3E66EDF.html" guid="{86253FE7-0036-4D14-8BD7-C18CE86A5E14}">封装体设计员</a>
</li>
<li>
<a href="./../../rup/roles/rup_designer_BA8DE74E.html" guid="{DB21F5EF-810B-4994-B120-79FA8774FA9D}">设计人员</a>
</li>
</ul>
</td><td class="sectionTableCell"><span class="sectionTableCellHeading">Modified By:
								</span>
<ul>
<li>
<a href="./../../rup/roles/rup_software_architect_DB0BF177.html" guid="{4AC346F0-E6FC-4D2C-8410-2EDF8DDDC91D}">软件架构师</a>
</li>
<li>
<a href="./../../rup/roles/rup_designer_BA8DE74E.html" guid="{DB21F5EF-810B-4994-B120-79FA8774FA9D}">设计人员</a>
</li>
</ul>
</td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row">Tasks</th><td class="sectionTableCell" width="42%"><span class="sectionTableCellHeading">Input To:
								</span>
<ul>
<li>
<a href="./../../rup/tasks/class_design_98F20FF9.html" guid="{27AE0601-2E95-4A6A-8EB3-0A4BA8E5626B}">类设计</a>
</li>
<li>
<a href="./../../rup/tasks/design_testability_elements_4F187BB5.html" guid="{635D3072-5A38-4EF8-B63E-08502EBBC8B4}">设计可测性元素</a>
</li>
<li>
<a href="./../../rup/tasks/database_design_8552DD3.html" guid="{2E74A414-49F5-4F27-BFCB-AA2DAC675F58}">数据库设计</a>
</li>
<li>
<a href="./../../rup/tasks/use_case_design_92D13EEE.html" guid="{76E2B93D-051C-4B8C-BEA1-B40A40CBD986}">用例设计</a>
</li>
</ul>
</td><td class="sectionTableCell"><span class="sectionTableCellHeading">Output From:
								</span>
<ul>
<li>
<a href="./../../rup/tasks/incorporate_design_elements_D3C582B5.html" guid="{5C647173-4E32-4594-96A9-2548B47722FA}">合并现有设计元素</a>
</li>
<li>
<a href="./../../rup/tasks/class_design_98F20FF9.html" guid="{27AE0601-2E95-4A6A-8EB3-0A4BA8E5626B}">类设计</a>
</li>
<li>
<a href="./../../rup/tasks/identify_design_mechanisms_9A197FBC.html" guid="{C7A26BD7-3820-48D9-830F-684C3AF155F9}">确定设计机制</a>
</li>
<li>
<a href="./../../rup/tasks/identify_design_elements_E884AB82.html" guid="{97D7343A-6993-4AB7-8F86-4DAC8C9075C8}">确定设计元素</a>
</li>
<li>
<a href="./../../rup/tasks/subsystem_design_5D1BCC0C.html" guid="{CAA385CA-2BA2-40F2-8FE3-E21089D02119}">子系统设计</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Description</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Main Description</th><td class="sectionTableCell"><p>
    设计子系统是封装行为、显露一组接口并封装其他模型元素的那部分系统。从外部来看，子系统是一个单一设计模型元素，与其他模型元素协作以完成其职责。可以从外部看到的接口及其行为称为子系统规约。从内部来看，子系统是模型元素（设计类和其他子系统）的集合，这些元素实现子系统规约的接口和行为。这称为子系统实现。
</p>
<p>
    设计子系统的“封装”能力与<a class="elementLinkWithType" href="./../../rup/workproducts/rup_design_package_8376BC8E.html" guid="{80CC5437-F481-487B-A69B-957D9D236D8D}">Artifact: 设计包</a>的“封装”能力相对照，后者不实现接口。包主要用于配置管理和模型组织，而子系统提供附加行为语义。
</p></td>
</tr>
</table>
</div>
<div class="sectionHeading">Illustrations	</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Reports</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../formal_resources/guidances/reports/design_package_subsystem_2EDCF89D.html" guid="3.8838056219981705E-305">设计包／子系统</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Tailoring</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Representation Options</th><td class="sectionTableCell">UML Representation: 
<p>
    UML 2.0 Component, stereotyped as &lt;&lt;Service Component&gt;&gt;.&nbsp;Note that UML 2.0 does provide a stereotype,
    within the "Intermediate" profile, called &lt;&lt;service&gt;&gt;, however this is simply defined as a "A stateless,
    functional component (computes a value)" which does not convey the meaning implied by this model element.
</p>
<p>
    <a id="Tailoring" name="Tailoring"></a>
</p>
<p>
    Service Components represent the realization of Services identified in the Service Model and described by the Service
    Specification; however as the granularity of a service tends to be quite large a Service Component may be further
    decomposed into components or coarse-grained <i><a class="elementLinkWithUserText" href="./../../rup/workproducts/rup_design_class_B33BD5E5.html" guid="{952A9CE9-D5A3-43AC-980D-0B9298F3872E}">Design
    Classes</a></i> within its implementation. It is likely therefore that different specific forms of service are required
    for this implementation. In particular the guideline <i><a class="elementLink" href="./../../rup_soa_plugin/guidances/guidelines/going_from_services_to_service_components_914EA328.html" guid="2.4211910729992714E-305">Going from Services to Service Components</a></i> patterns are identified that use the
    following additional stereotypes in addition to the use of standard component, classes and elements of the NUP <i><a class="elementLink" href="./../../rup/workproducts/rup_design_model_2830034D.html" guid="{8CDAEAD4-5E84-4F50-87FD-3240ED047DE7}">设计模型</a></i>:
</p>
<table style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid"  cellspacing="0" bordercolordark="#808080" cellpadding="4" width="100%" bordercolorlight="#808080" border="1">
    <tbody>
        <tr>
            <th width="48">
                <p class="tableheading">
                    Icon
                </p>
            </th>
            <th width="15%">
                <p class="tableheading">
                    Name
                </p>
            </th>
            <th width="25%">
                <p class="tableheading">
                    UML Representation
                </p>
            </th>
            <th width="55%">
                <p class="tableheading">
                    Description
                </p>
            </th>
        </tr>
        <tr>
            <td width="48">
                <img height="24" alt="icon" src="./../../rup_soa_plugin/workproducts/resources/soa_svc_facade_component_16.gif" width="24" border="0" />
            </td>
            <td width="15%">
                facade
            </td>
            <td width="25%">
                stereotype on Class or Component.
            </td>
            <td width="55%">
                Used to denote the component acting as the facade for the implementation of the service; in general there
                is one facade component for each realized Service Specification.
            </td>
        </tr>
        <tr>
            <td width="48">
                <img height="24" alt="icon" src="./../../rup_soa_plugin/workproducts/resources/soa_svc_mediation_component_16.gif" width="24" border="0" />
            </td>
            <td width="15%">
                mediator
            </td>
            <td width="25%">
                stereotype on Class or Component.
            </td>
            <td width="55%">
                Used in situations where there may be one or more implementations for a given service operation, the
                mediator is called by the facade to identify and call the correct implementation component.
            </td>
        </tr>
        <tr>
            <td width="48">
                <img height="24" alt="icon" src="./../../rup_soa_plugin/workproducts/resources/soa_svc_data_component_16.gif" width="24" border="0" />
            </td>
            <td width="15%">
                data access
            </td>
            <td width="25%">
                stereotype on Class or Component.
            </td>
            <td width="55%">
                Used to denote a data access component, this component is responsible for the access and management of
                persistent data for the service implementation.
            </td>
        </tr>
    </tbody>
</table>
<p>
    <br />
</p></td>
</tr>
</table>
</div>
<div class="sectionHeading">More Information</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Checklists</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../rup/guidances/checklists/design_subsystem_65DED9C0.html" guid="2.4204020119591446E-307">设计子系统</a>
</li>
</ul>
</td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row">Guidelines</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../rup/guidances/guidelines/design_subsystem_B26FD609.html" guid="1.2314266786534317E-305">设计子系统</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<table class="copyright" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="copyright">Copyright &copy; 2008 版权所有 东软集团股份有限公司&nbsp; 联系邮箱:<a href="mailto:tcoe@neusoft.com">tcoe@neusoft.com</a></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<script type="text/javascript" language="JavaScript">
				contentPage.onload();
			</script>
</html>
